#ifndef JEU_H_
#define JEU_H_

#include <List.h>
#include "Erreur.h"

typedef struct _Jeu Jeu;
typedef enum { mjPlateau, mjCombat, mjEpreuve } ModeJeu;

#include "Personnage.h"
#include "Plateau.h"
#include "Joueur.h"

/**
 * \fn Jeu* newJeu()
 * \brief Constructor
 * \return Un jeu
 */ 
Jeu* newJeu();

/**
 * \fn void deleteJeu()
 * \brief Destructor
 */
void deleteJeu(Jeu* jeu);

/* Getters */
ModeJeu jeuGetMode(Jeu* jeu);
Plateau* jeuGetPlateau(Jeu* jeu);
Personnage* jeuGetHero(Jeu* jeu);
List* jeuGetJoueurs(Jeu* jeu);
int jeuGetNbJoueurs(Jeu* jeu);
int jeuIsFini(Jeu* jeu);

/* Settlers */
void jeuSetPlateau(Jeu* jeu,Plateau* p);
void jeuAddJoueur(Jeu* jeu,Joueur* joueur);
void jeuRemJoueur(Jeu* jeu,Joueur* joueur);
void jeuSetFini(Jeu* jeu);

/* Other */
int jeuExecuter(Jeu* jeu);

#endif /*JEU_H_*/
